/*
  学习目标：Switch

*/

import React, { Component } from 'react';
import './index.css';
// 👍通过as 将路由重命名为Router
import { BrowserRouter as Router, Route, Link, NavLink, Switch } from 'react-router-dom';
export default class App extends Component {
  render() {
    return (
      <Router>
        <NavLink to="/home/123" activeClassName="xxx" exact>
          点我调到首页
        </NavLink>
        <br />
        <NavLink to="/my">点我调到我的</NavLink>
        <br />
        <NavLink to="/friend">点我调到朋友</NavLink>
        <div>
          {/* Switch组件的特点： 匹配到任意一个，即停止向下匹配 */}
          {/* 👍 使用Route组件，直接包在Switch组件中 */}
          <Switch>
            <Route path="/home" component={Home}></Route>
            <Route path="/home" component={Home}></Route>
            <Route path="/home" component={Home}></Route>
            <Route path="/home" component={Home}></Route>
            <Route path="/my" component={MyMusic}></Route>
            <Route path="/friend" component={Friend}></Route>
            {/* 👍不写path 通常放在Switch组件的最后一个，表示兜底，匹配任意路径 */}
            {/* 场景：通常用来做404页面 */}
            <Route component={NotFound}></Route>
          </Switch>
        </div>
      </Router>
    );
  }
}

function NotFound() {
  return <div>404页面</div>;
}

function Home() {
  return <h1>我是首页组件</h1>;
}

function MyMusic() {
  return <h1>我是我的音乐件</h1>;
}

function Friend() {
  return <h1>我是朋友组件</h1>;
}

// NavLink 和 Link 区别
// 通过activeClassName="xxx"
// 精准匹配 : url 和 to或者path, 一模一样
// 模糊匹配: url包换to或者path
